package com.eastfair.certificate.dto;

import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import com.eastfair.core.base.entity.Entity;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableField;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.Builder;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.AllArgsConstructor;
import lombok.ToString;
import lombok.experimental.Accessors;
import com.eastfair.certificate.enumeration.FormFieldMethodTypeEnum;
import com.eastfair.certificate.enumeration.FormFieldFieldTypeAttributeEnum;
import java.io.Serializable;

/**
 * <p>
 * 实体类
 * 动态表单
 * </p>
 *
 * @author ligang
 * @since 2023-05-17
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
@Accessors(chain = true)
@ToString(callSuper = true)
@EqualsAndHashCode(callSuper = false)
@Builder
@ApiModel(value = "FormFieldPageQuery", description = "动态表单")
public class FormFieldPageQuery implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 语言环境
     */
    @ApiModelProperty(value = "语言环境")
    private String languageType;
    /**
     * 字段名称
     */
    @ApiModelProperty(value = "字段名称")
    private String fieldName;
    /**
     * 字段英文名称
     */
    @ApiModelProperty(value = "字段英文名称")
    private String fieldEnName;
    /**
     * 关键字
     */
    @ApiModelProperty(value = "关键字")
    private String keyword;
    /**
     * 字段类型 单选，多选，下拉，输入
     */
    @ApiModelProperty(value = "字段类型 单选，多选，下拉，输入")
    private String fieldType;
    /**
     * 组id
     */
    @ApiModelProperty(value = "组id")
    private Long groupId;
    /**
     * 字段类型属性:#{DICT:字典;API:api;OTHER:自定义;}
     */
    @ApiModelProperty(value = "字段类型属性:#{DICT:字典;API:api;OTHER:自定义;}")
    private FormFieldFieldTypeAttributeEnum fieldTypeAttribute;
    /**
     * 接口请求方式#{GET:get;POST:post;PUT:put}
     */
    @ApiModelProperty(value = "接口请求方式#{GET:get;POST:post;PUT:put}")
    private FormFieldMethodTypeEnum methodType;
    /**
     * url地址
     */
    @ApiModelProperty(value = "url地址")
    private String fieldTypeUrlValue;
    /**
     * 字段类型属性值
     */
    @ApiModelProperty(value = "字段类型属性值")
    private String fieldTypeAttributeValue;
    /**
     * 提示语
     */
    @ApiModelProperty(value = "提示语")
    private String placeholder;
    /**
     * 英文提示语
     */
    @ApiModelProperty(value = "英文提示语")
    private String enPlaceholder;
    /**
     * 字段描述
     */
    @ApiModelProperty(value = "字段描述")
    private String fieldDesc;
    /**
     * 字段英文描述
     */
    @ApiModelProperty(value = "字段英文描述")
    private String fieldEnDesc;
    /**
     * 字数限制
     */
    @ApiModelProperty(value = "字数限制")
    private Integer inputLength;
    /**
     * 宽度
     */
    @ApiModelProperty(value = "宽度")
    private Integer inputWidth;
    /**
     * 排序
     */
    @ApiModelProperty(value = "排序")
    private Integer sequence;
    /**
     * 示例图片
     */
    @ApiModelProperty(value = "示例图片")
    private String legend;
    /**
     * 示例图片描述
     */
    @ApiModelProperty(value = "示例图片描述")
    private String legendDesc;
    /**
     * 示例图片英文描述
     */
    @ApiModelProperty(value = "示例图片英文描述")
    private String legendEnDesc;
    /**
     * 是否可编辑：1是；0否
     */
    @ApiModelProperty(value = "是否可编辑：1是；0否")
    private Integer isEdit;
    /**
     * 是否必填：1是；0否
     */
    @ApiModelProperty(value = "是否必填：1是；0否")
    private Integer isRequired;
    /**
     * 是否多选：1是；0否
     */
    @ApiModelProperty(value = "是否多选：1是；0否")
    private Integer isMultiple;
    /**
     * 是否需要验证：1是；0否
     */
    @ApiModelProperty(value = "是否需要验证：1是；0否")
    private Integer isVerification;
    /**
     * 验证关键字
     */
    @ApiModelProperty(value = "验证关键字")
    private String verificationKeyword;
    /**
     * 是否启用：1是；0否
     */
    @ApiModelProperty(value = "是否启用：1是；0否")
    private Integer isEnabled;
    /**
     * 是否删除：1是；0否
     */
    @ApiModelProperty(value = "是否删除：1是；0否")
    private Integer isDeleted;
    /**
     * 租户id
     */
    @ApiModelProperty(value = "租户id")
    private Long tenantId;
    /**
     * 项目id
     */
    @ApiModelProperty(value = "项目id")
    private Long projectId;
    /**
     * 子系统id
     */
    @ApiModelProperty(value = "子系统id")
    private Long subsystemId;
    /**
     * 标签键名
     */
    @ApiModelProperty(value = "标签键名")
    private String labelKey;
    /**
     * 值键名
     */
    @ApiModelProperty(value = "值键名")
    private String labelValueKey;

}
